package com.brspace.qualitycontrol.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 发文拟稿
 * </p>
 *
 * @author ${author}
 * @since 2021-04-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="Publish对象", description="发文拟稿")
public class Publish implements Serializable {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "uuid")
      @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    @ApiModelProperty(value = "签发")
    private String issue;

    @ApiModelProperty(value = "会签")
    private String content;

    @ApiModelProperty(value = "核稿")
    private String noticePeople;

    @ApiModelProperty(value = "主办单位（选择）")
    private String organizer;

    @ApiModelProperty(value = "拟稿人（选择）")
    private String draftUser;

    @ApiModelProperty(value = "事由")
    private String draftMatter;

    @ApiModelProperty(value = "附件")
    private String draftAnnex;

    @ApiModelProperty(value = "主送机关（选择）")
    private String giveOffice;

    @ApiModelProperty(value = "抄送机关（选择）")
    private String copyOffice;

    @ApiModelProperty(value = "打字（选择）")
    private String typing;

    @ApiModelProperty(value = "核对（选择）")
    private String examine;

    @ApiModelProperty(value = "标题")
    private String title;

    @ApiModelProperty(value = "状态（0，代办，1，已办）")
    private String state;

    @ApiModelProperty(value = "主题词")
    private String theme;

    @ApiModelProperty(value = "打印")
    private String dayin;

    @ApiModelProperty(value = "文号")
    private String wordNumber;

    @ApiModelProperty(value = "事项编号")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long number;

    @ApiModelProperty(value = "封发")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    private Date seal;

    @ApiModelProperty(value = "逻辑删除（默认0，1）")
    private String idDeleted;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "修改时间")
      @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "发文类型")
    private String drafterType;

    @ApiModelProperty(value = "附件")
    @TableField(exist = false)
    private List<PublishFile> annex;

    @ApiModelProperty(value = "用户id")
    private String userId;

    @ApiModelProperty(value = "部门id")
    private String deptId;

    @ApiModelProperty(value = "路由条件")
    private String progress;

    @ApiModelProperty(value = "节点id")
    private int nodeId;

    @ApiModelProperty(value = "核稿人id")
    private String noticePeopleId;

    @ApiModelProperty(value = "核稿人意见")
    private String noticePeopleOpinion;

    @ApiModelProperty(value = "签发人id")
    private String issueId;

    @ApiModelProperty(value = "签发人意见")
    private String issueOpinion;

    @ApiModelProperty(value = "会签人id")
    private String contentId;

    @ApiModelProperty(value = "会签人意见")
    private String contentOpinion;

    @ApiModelProperty(value = "拟稿人id")
    private String draftUserId;

    @ApiModelProperty(value = "文书")
    private String staff;

    @ApiModelProperty(value = "流程步骤")
    private int sortNumber;

    @TableField(exist = false)
    private String fileId;

}
